package com.gxa.learning.pc.service;

import com.github.pagehelper.PageInfo;
import com.gxa.learning.core.pojo.Feedback;
import com.gxa.learning.core.service.BaseService;

import java.util.List;
import java.util.Map;

/**
 * @version E-learning
 * @Author lonny
 * @Date 2021/12/3 9:34
 */
public interface FeedbackService extends BaseService<Feedback> {

    /**
     * 项目详情
     *
     * @param id 项目id
     * @return 返回结果
     * @throws Exception 抛出
     */
    Map<String, Object> findByDetails(String id) throws Exception;

    /**
     * 项目反馈情况
     *
     * @param id 项目id
     * @return 返回结果
     * @throws Exception 抛出
     */
    Map<String, Object> findFeedbackRatio(String id) throws Exception;

    /**
     * 当前项目学员列表
     *
     * @param id       项目id
     * @param page     页码
     * @param size     页数
     * @param userName 用户名
     * @param company  公司名
     * @param position 职位
     * @return 返回结果
     * @throws Exception 抛出
     */
    PageInfo<Map<String, Object>> selectStudentList(Integer page, Integer size, String id, String userName, String company, String position) throws Exception;

    /**
     * 反馈表成本目录
     *
     * @param id   项目编号
     * @param page 页码
     * @param size 页数
     * @return 返回结果
     * @throws Exception 抛出
     */
    PageInfo<Map<String, Object>> costList(Integer page, Integer size, String id) throws Exception;

    /**
     * 项目得分
     *
     * @param id 项目id
     * @return 返回结果
     * @throws Exception 抛出
     */
    Map<String, Object> scoreRatio(String id) throws Exception;

    /**
     * 查询用户需要培训反馈的方法
     *
     * @param id
     * @return
     */
    List<Map> getFeedBack(Long id);

    /**
     * 查询用户需要课程反馈的方法
     *
     * @param id
     * @return
     */
    List<Map> getCourseFeedBack(Long id);


    /**
     * 提醒用户反馈
     *
     * @param userId    用户
     * @param projectId 项目
     * @throws Exception 抛出
     */
    void remindFeedBack(String userId, String projectId) throws Exception;
}
